

#ifndef STORAGEAO_STRUCT_H
#define STORAGEAO_STRUCT_H

#include <stdint.h>
#include <string>
#include <iostream>
#include "libc2c/byte_stream.h"
#include "app_platform/intf_service_object.h"
#include "erp/storage/po/stockpo_storage.h"	
#include "erp/storage/po/losebillpo_storage.h"	
#include "erp/storage/po/stockcheckitempo_storage.h"	
#include "erp/storage/po/stockfilterpo_storage.h"	
#include <set>	
#include "erp/storage/po/overflowbillpo_storage.h"	
#include "erp/storage/po/overflowbillorlosebillfilterpo_storage.h"	
#include <map>	
#include <vector>	
#include "erp/storage/po/disassemblebillfilterpo_storage.h"	
#include "erp/storage/po/stockbranch_relpo_storage.h"	
#include "erp/storage/po/disassemblebillpo_storage.h"	
#include "erp/storage/po/stockcheckmasterpo_storage.h"	
#include "erp/storage/po/stockcheckfilterpo_storage.h"	

namespace erp
{
namespace storage
{
namespace ao
{

	const uint32_t STORAGEAO_ADDDISASSEMBLEBILL_REQ_CMD_ID = 0xc05f1813; /// 请求命令号
	const uint32_t STORAGEAO_ADDDISASSEMBLEBILL_RESP_CMD_ID = 0xc05f8813; /// 回应命令号
	

	const uint32_t STORAGEAO_ADDLOSEBILLOROVERFLOWBILL_REQ_CMD_ID = 0xc05f1808; /// 请求命令号
	const uint32_t STORAGEAO_ADDLOSEBILLOROVERFLOWBILL_RESP_CMD_ID = 0xc05f8808; /// 回应命令号
	

	const uint32_t STORAGEAO_ADDSTOCK_REQ_CMD_ID = 0xc05f1801; /// 请求命令号
	const uint32_t STORAGEAO_ADDSTOCK_RESP_CMD_ID = 0xc05f8801; /// 回应命令号
	

	const uint32_t STORAGEAO_ADDSTOCKCHECK_REQ_CMD_ID = 0xc05f1818; /// 请求命令号
	const uint32_t STORAGEAO_ADDSTOCKCHECK_RESP_CMD_ID = 0xc05f8818; /// 回应命令号
	

	const uint32_t STORAGEAO_DELETEDISASSEMBLEBILL_REQ_CMD_ID = 0xc05f1814; /// 请求命令号
	const uint32_t STORAGEAO_DELETEDISASSEMBLEBILL_RESP_CMD_ID = 0xc05f8814; /// 回应命令号
	

	const uint32_t STORAGEAO_DELETELOSEBILLOROVERFLOWBILL_REQ_CMD_ID = 0xc05f1809; /// 请求命令号
	const uint32_t STORAGEAO_DELETELOSEBILLOROVERFLOWBILL_RESP_CMD_ID = 0xc05f8809; /// 回应命令号
	

	const uint32_t STORAGEAO_DELETESTOCK_REQ_CMD_ID = 0xc05f1802; /// 请求命令号
	const uint32_t STORAGEAO_DELETESTOCK_RESP_CMD_ID = 0xc05f8802; /// 回应命令号
	

	const uint32_t STORAGEAO_DELETESTOCKCHECK_REQ_CMD_ID = 0xc05f1819; /// 请求命令号
	const uint32_t STORAGEAO_DELETESTOCKCHECK_RESP_CMD_ID = 0xc05f8819; /// 回应命令号
	

	const uint32_t STORAGEAO_GETDISASSEMBLEBILLBYSYSNOS_REQ_CMD_ID = 0xc05f1816; /// 请求命令号
	const uint32_t STORAGEAO_GETDISASSEMBLEBILLBYSYSNOS_RESP_CMD_ID = 0xc05f8816; /// 回应命令号
	

	const uint32_t STORAGEAO_GETDISASSEMBLEBILLLIST_REQ_CMD_ID = 0xc05f1817; /// 请求命令号
	const uint32_t STORAGEAO_GETDISASSEMBLEBILLLIST_RESP_CMD_ID = 0xc05f8817; /// 回应命令号
	

	const uint32_t STORAGEAO_GETLOSEBILLOROVERFLOWBILLBYSYSNOS_REQ_CMD_ID = 0xc05f1811; /// 请求命令号
	const uint32_t STORAGEAO_GETLOSEBILLOROVERFLOWBILLBYSYSNOS_RESP_CMD_ID = 0xc05f8811; /// 回应命令号
	

	const uint32_t STORAGEAO_GETLOSEBILLOROVERFLOWBILLLIST_REQ_CMD_ID = 0xc05f1812; /// 请求命令号
	const uint32_t STORAGEAO_GETLOSEBILLOROVERFLOWBILLLIST_RESP_CMD_ID = 0xc05f8812; /// 回应命令号
	

	const uint32_t STORAGEAO_GETSTOCKBRANCH_RELBYSYSNO_REQ_CMD_ID = 0xc05f1807; /// 请求命令号
	const uint32_t STORAGEAO_GETSTOCKBRANCH_RELBYSYSNO_RESP_CMD_ID = 0xc05f8807; /// 回应命令号
	

	const uint32_t STORAGEAO_GETSTOCKBYSYSNOS_REQ_CMD_ID = 0xc05f1804; /// 请求命令号
	const uint32_t STORAGEAO_GETSTOCKBYSYSNOS_RESP_CMD_ID = 0xc05f8804; /// 回应命令号
	

	const uint32_t STORAGEAO_GETSTOCKCHECKBYSYSNOS_REQ_CMD_ID = 0xc05f1821; /// 请求命令号
	const uint32_t STORAGEAO_GETSTOCKCHECKBYSYSNOS_RESP_CMD_ID = 0xc05f8821; /// 回应命令号
	

	const uint32_t STORAGEAO_GETSTOCKCHECKLIST_REQ_CMD_ID = 0xc05f1822; /// 请求命令号
	const uint32_t STORAGEAO_GETSTOCKCHECKLIST_RESP_CMD_ID = 0xc05f8822; /// 回应命令号
	

	const uint32_t STORAGEAO_GETSTOCKLIST_REQ_CMD_ID = 0xc05f1805; /// 请求命令号
	const uint32_t STORAGEAO_GETSTOCKLIST_RESP_CMD_ID = 0xc05f8805; /// 回应命令号
	

	const uint32_t STORAGEAO_MODIFYSTOCKBRANCH_REL_REQ_CMD_ID = 0xc05f1806; /// 请求命令号
	const uint32_t STORAGEAO_MODIFYSTOCKBRANCH_REL_RESP_CMD_ID = 0xc05f8806; /// 回应命令号
	

	const uint32_t STORAGEAO_UPDATADISASSEMBLEBILL_REQ_CMD_ID = 0xc05f1815; /// 请求命令号
	const uint32_t STORAGEAO_UPDATADISASSEMBLEBILL_RESP_CMD_ID = 0xc05f8815; /// 回应命令号
	

	const uint32_t STORAGEAO_UPDATALOSEBILLOROVERFLOWBILL_REQ_CMD_ID = 0xc05f1810; /// 请求命令号
	const uint32_t STORAGEAO_UPDATALOSEBILLOROVERFLOWBILL_RESP_CMD_ID = 0xc05f8810; /// 回应命令号
	

	const uint32_t STORAGEAO_UPDATASTOCKCHECK_REQ_CMD_ID = 0xc05f1820; /// 请求命令号
	const uint32_t STORAGEAO_UPDATASTOCKCHECK_RESP_CMD_ID = 0xc05f8820; /// 回应命令号
	

	const uint32_t STORAGEAO_UPDATESTOCK_REQ_CMD_ID = 0xc05f1803; /// 请求命令号
	const uint32_t STORAGEAO_UPDATESTOCK_RESP_CMD_ID = 0xc05f8803; /// 回应命令号
	


const uint16_t STORAGEAO_MAX_PROTOCAL_VERSION = 2; //>平台支持的最大协议版本号


///////////////////////////// STRUCTS /////////////////////////////////////////////////
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddDisassembleBillReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CDisassembleBillPo DisassembleBillInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
		uint64_t DisassembleBillSysNo;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDDISASSEMBLEBILL_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			DisassembleBillInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddDisassembleBillResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		uint64_t DisassembleBillSysNo;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDDISASSEMBLEBILL_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;
			bs & DisassembleBillSysNo;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddLoseBillOrOverFlowBillReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CLoseBillPo LoseBillInfo;	
		erp::storage::po::COverFlowBillPo OverFlowBillInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
		uint64_t OverFlowBillSysNo;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDLOSEBILLOROVERFLOWBILL_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			LoseBillInfo.Serialize(bs);
			OverFlowBillInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddLoseBillOrOverFlowBillResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		uint64_t OverFlowBillSysNo;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDLOSEBILLOROVERFLOWBILL_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;
			bs & OverFlowBillSysNo;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddStockReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CStockPo StockInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
		uint64_t StockSysNo;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDSTOCK_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			StockInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddStockResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		uint64_t StockSysNo;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDSTOCK_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;
			bs & StockSysNo;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddStockCheckReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CStockCheckMasterPo StockCheckMasterInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
		uint64_t StockCheckMasterSysNo;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDSTOCKCHECK_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			StockCheckMasterInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoAddStockCheckResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		uint64_t StockCheckMasterSysNo;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_ADDSTOCKCHECK_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;
			bs & StockCheckMasterSysNo;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteDisassembleBillReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		std::set<uint64_t > DisassemblebillSysNos;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETEDISASSEMBLEBILL_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & DisassemblebillSysNos;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteDisassembleBillResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETEDISASSEMBLEBILL_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & errorCode;
			bs & errorMsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteLoseBillOrOverFlowBillReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		std::set<uint64_t > FLoseBillSysNo;
		std::set<uint64_t > FOverFlowBillSysNo;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETELOSEBILLOROVERFLOWBILL_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & FLoseBillSysNo;
			bs & FOverFlowBillSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteLoseBillOrOverFlowBillResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETELOSEBILLOROVERFLOWBILL_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & errorCode;
			bs & errorMsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteStockReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		std::set<uint64_t > FStockSysNo;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETESTOCK_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & FStockSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteStockResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETESTOCK_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & errorCode;
			bs & errorMsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteStockCheckReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		std::set<uint64_t > StockCheckMasterSysNos;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETESTOCKCHECK_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & StockCheckMasterSysNos;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoDeleteStockCheckResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_DELETESTOCKCHECK_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & errorCode;
			bs & errorMsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetDisassembleBillBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		std::set<uint64_t > DisassembleBillSysnoList;
		std::string inReserve;
		std::string errmsg;
		std::vector<erp::storage::po::CDisassembleBillPo > DisassembleBillList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETDISASSEMBLEBILLBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & DisassembleBillSysnoList;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetDisassembleBillBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::vector<erp::storage::po::CDisassembleBillPo > DisassembleBillList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETDISASSEMBLEBILLBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & DisassembleBillList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetDisassembleBillListReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::storage::po::CDisassembleBillFilterPo DisassembleBillFilter;	
		std::string inReserve;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CDisassembleBillPo > DisassembleBillList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETDISASSEMBLEBILLLIST_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			DisassembleBillFilter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetDisassembleBillListResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CDisassembleBillPo > DisassembleBillList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETDISASSEMBLEBILLLIST_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & total;
			bs & DisassembleBillList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetLoseBillOrOverFlowBillBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		std::set<uint64_t > LoseBillSysNoList;
		std::set<uint64_t > OverFlowSysNoList;
		std::string inReserve;
		std::string errmsg;
		std::vector<erp::storage::po::CLoseBillPo > LoseBillList;
		std::vector<erp::storage::po::COverFlowBillPo > OverFlowList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETLOSEBILLOROVERFLOWBILLBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & LoseBillSysNoList;
			bs & OverFlowSysNoList;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetLoseBillOrOverFlowBillBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::vector<erp::storage::po::CLoseBillPo > LoseBillList;
		std::vector<erp::storage::po::COverFlowBillPo > OverFlowList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETLOSEBILLOROVERFLOWBILLBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & LoseBillList;
			bs & OverFlowList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetLoseBillOrOverFlowBillListReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::storage::po::COverFlowBillOrLoseBillFilterPo OverFlowBillOrLoseBillFilter;	
		std::string inReserve;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CLoseBillPo > LoseBillList;
		std::vector<erp::storage::po::COverFlowBillPo > OverFlowList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETLOSEBILLOROVERFLOWBILLLIST_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			OverFlowBillOrLoseBillFilter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetLoseBillOrOverFlowBillListResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CLoseBillPo > LoseBillList;
		std::vector<erp::storage::po::COverFlowBillPo > OverFlowList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETLOSEBILLOROVERFLOWBILLLIST_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & total;
			bs & LoseBillList;
			bs & OverFlowList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockBranch_RelBySysNoReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		uint64_t StockSysNo;
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
		std::vector<erp::storage::po::CStockBranch_RelPo > StockBranchList;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKBRANCH_RELBYSYSNO_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & StockSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockBranch_RelBySysNoResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		std::vector<erp::storage::po::CStockBranch_RelPo > StockBranchList;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKBRANCH_RELBYSYSNO_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;
			bs & StockBranchList;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		std::set<uint64_t > StockSysnoList;
		std::string inReserve;
		std::string errmsg;
		std::vector<erp::storage::po::CStockPo > StockList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & StockSysnoList;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::vector<erp::storage::po::CStockPo > StockList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & StockList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockCheckBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		std::set<uint64_t > StockCheckMasterSysNoList;
		std::string inReserve;
		std::string errmsg;
		std::vector<erp::storage::po::CStockCheckMasterPo > StockCheckList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKCHECKBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & StockCheckMasterSysNoList;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockCheckBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::vector<erp::storage::po::CStockCheckMasterPo > StockCheckList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKCHECKBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & StockCheckList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockCheckListReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::storage::po::CStockCheckFilterPo StockCheckFilterPo;	
		std::string inReserve;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CStockCheckMasterPo > StockCheckList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKCHECKLIST_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			StockCheckFilterPo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockCheckListResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CStockCheckMasterPo > StockCheckList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKCHECKLIST_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & total;
			bs & StockCheckList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockListReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::storage::po::CStockFilterPo StockFilter;	
		std::string inReserve;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CStockPo > StockList;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKLIST_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			StockFilter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoGetStockListResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::storage::po::CStockPo > StockList;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_GETSTOCKLIST_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & total;
			bs & StockList;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoModifyStockBranch_RelReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		uint64_t StockSysNo;
		std::set<uint64_t > BranchSysNos;
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_MODIFYSTOCKBRANCH_REL_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & StockSysNo;
			bs & BranchSysNos;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoModifyStockBranch_RelResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_MODIFYSTOCKBRANCH_REL_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdataDisassembleBillReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CDisassembleBillPo DisassembleBillInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATADISASSEMBLEBILL_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			DisassembleBillInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdataDisassembleBillResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATADISASSEMBLEBILL_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdataLoseBillOrOverFlowBillReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CLoseBillPo LoseBillInfo;	
		erp::storage::po::COverFlowBillPo OverFlowBillInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATALOSEBILLOROVERFLOWBILL_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			LoseBillInfo.Serialize(bs);
			OverFlowBillInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdataLoseBillOrOverFlowBillResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATALOSEBILLOROVERFLOWBILL_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdataStockCheckReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CStockCheckMasterPo StockCheckMasterInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATASTOCKCHECK_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			StockCheckMasterInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdataStockCheckResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATASTOCKCHECK_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdateStockReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::storage::po::CStockPo StockInfo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATESTOCK_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > STORAGEAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			StockInfo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-11-01 14:15:47
 	 * @version 0
	 */	
	struct CStorageAoUpdateStockResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return STORAGEAO_UPDATESTOCK_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	

}
}
}

#endif /* STORAGEAO_STRUCT_H */

